interface IEvent {
    on(listener :() => void) :void;
    off(listener :() => void) :void;
    once(listener :() => void) :void;
    fire(...a :any[]) :void;
}